# syntax=docker/dockerfile:1
# 指定使用Dockerfile的语法版本。在这里，指定使用Docker官方提供的语法版本1。

FROM python:3.10-alpine
# 使用Python 3.10的Alpine版本作为基础镜像。Alpine版本的镜像通常更小更轻量。

WORKDIR /code
# 设置工作目录为/code。在这之后的所有命令都将在这个目录下执行。

ENV FLASK_APP=app.py
# 设置环境变量FLASK_APP为app.py，这样Flask可以知道哪个文件是应用的入口。

ENV FLASK_RUN_HOST=0.0.0.0
# 设置环境变量FLASK_RUN_HOST为0.0.0.0，这样Flask应用将监听所有主机地址。

RUN apk add --no-cache gcc musl-dev linux-headers
# 使用Alpine包管理器apk安装gcc编译器、musl-dev和linux-headers。这些包通常用于编译Python扩展包。

COPY requirements.txt requirements.txt
# 将当前目录下的requirements.txt文件复制到镜像中的/code目录。

RUN pip install -r requirements.txt
# 使用pip安装requirements.txt中列出的所有Python依赖包。

EXPOSE 5000
# 声明容器在运行时将监听5000端口。这个指令是文档性质的，实际端口映射是在docker run命令或Docker Compose文件中配置的。

COPY . .
# 将当前目录下的所有文件复制到镜像中的/code目录。

CMD ["flask", "run", "--debug"]
# 指定容器启动时要执行的命令。在这里，运行flask run --debug命令来启动Flask应用，并开启调试模式。
